1. Technical Field of the Invention
The present invention relates to wideband code division multiple access (WCDMA) receivers and, in particular, to the initial acquisition of synchronization code group and frame alignment data by a UMTS-FDD receiver.
2. Description of Related Art
The cell search procedure for wideband CDMA receivers in general, and UMTS-FDD receivers in particular, to acquire the scrambling code group and frame synchronization of a cell is typically carried out in three steps: slot synchronization (step 1); frame synchronization and code-group identification (step 2); and scrambling code identification (step 3). In slot synchronization (step 1), the receiver uses the primary synchronization code (PSC) of the primary synchronization channel (P-SCH) to acquire slot synchronization to a given cell. This is typically accomplished with a single matched filter (or any similar device) matched to the primary synchronization code (which is common to all cells). The slot timing of the cell can then be obtained by detecting peaks in the matched filter output. Next, this slot timing is fed to the frame synchronization and code-group identification (step 2) process, the receiver uses the secondary synchronization codes (SSC) of the secondary synchronization channel (S-SCH) to find frame synchronization and identify the code group of the cell found in step 1. This is typically accomplished by correlating, over several slots, the received signal with all possible secondary synchronization code sequences and then identifying the maximum correlation value. Since the cyclic shifts of the sequences are unique, not only the code group, but also the frame synchronization, is determined by this correlation. Finally, scrambling-code identification (step 3) is achieved by determining the exact primary scrambling code used by the found cell. This primary scrambling code is typically identified through symbol-by-symbol correlation over the common pilot channel (CPICH) with all codes within the code group identified in the second step. After the primary scrambling code has been identified, the primary common control physical channel (CCPCH) can be detected, and the system- and cell-specific broadcast control channel (BCH) information can be read.
The primary synchronization code Cpsc is constructed as a so-called generalized hierarchical Golay sequence chosen to have good aperiodic auto correlation properties:PSC=(1+j)·<a,a,a,−a,−a,a,−a,−a,a,a,a,−a,a,−a,a,a>
wherein: a=<a0,a1, . . . , a15>, and more specifically:a=<1,1,1,1,1,1,−1,−1,1,−1,1,−1,1,−1,−1,1>in the case of UMTS-FDD. The PSC is defined for the first 256 chips of 2560-chip long slot, and takes 0 values for the 2304 remaining chips of the slot. Thus, the PSC may be rewritten as:PSC=(1+j)·<A0a,A1a, . . . ,A14a,A15a>
wherein: a=<a0,a1, . . . ,a15>, and more specifically:a=<1,1,1,1,1,1,−1,−1,1,−1,1,−1,1,−1,−1,1>, andA=<1,1,1,−1,−1,1,−1,−1,1,1,1,−1,1,−1,1,1>in the case of UMTS-FDD.
With respect to the plurality of secondary synchronization codes (SSC), a first 256-chip long code z is defined as:z=<b,b,b,−b,b,b,−b,−b,b,−b,b,−b,−b,−b,−b,−b>
wherein: b[0-7]=a[0-7], i.e., the first eight chips of sequence b are the same as the first eight chips of sequence a; and                b[8-15]=−a[8-15], i.e., the last eight chips of sequence b are the opposite of the last eight chips of sequence a.The code z may be reformatted with respect to a code sequence B and more specifically is:z=<B0b,B1b, . . . ,B14b,B15b>        
wherein: b=<b0b1, . . . ,b15>, and more specifically:b=<1,1,1,1,1,1,−1,−1,−1,1,−1,1,−1,1,1,−1>, andB=<1,1,1,−1,1,1,−1,−1,1,−1,1,−1,−1,−1,−1,−1>in the case of UMTS-FDD.
The sixteen secondary synchronization code sequences Cssc are then constructed from a position wise multiplication of a Hadamard sequence and the code sequence z. The Hadamard sequences are obtained as the rows m in a matrix H8 constructed recursively by:
                                          H            0                    =          1                ⁢                                  ⁢                              H            v                    =                                                    (                                                                                                    H                                                  v                          -                          1                                                                                                                                    H                                                  v                          -                          1                                                                                                                                                                        H                                                  v                          -                          1                                                                                                                                    -                                                  H                                                      v                            -                            1                                                                                                                                              )                            ⁢                                                          ⁢              v                        ≥            1                                              (        1        )            
The rows m=16k of the matrix H8 possess the property that their elements are equal within a group of sixteen consecutive values, where the first group starts with the first element of a row. In other words, the i-th element of row m takes on a value hm,1 such that:hm,1=hm,16n  (2)where n is the integer division of i by sixteen:i=16n+r, 0≦r≦15  (3)For the sake of simplicity, denote h′k,n such that:hm,1=hm,16n=h16k,16n=h′k,n  (4)with n specified as set forth above in Equation (3), and n corresponding to the index of a group of sixteen consecutive chips within the 256-chip long sequence. Thus, the k-th secondary synchronization code sequence is:
                              SSC          k                =                ⁢                              (                          1              +              j                        )                    ·                      〈                                                            h                                      k                    ,                    0                                    ′                                ⁢                b                            ,                                                h                                      k                    ,                    1                                    ′                                ⁢                b                            ,                                                h                                      k                    ,                    2                                    ′                                ⁢                b                            ,                                                -                                      h                                          k                      ,                      3                                        ′                                                  ⁢                b                            ,                                                h                                      k                    ,                    4                                    ′                                ⁢                b                            ,                                                h                                      k                    ,                    5                                    ′                                ⁢                b                            ,                                                -                                      h                                          k                      ,                      6                                        ′                                                  ⁢                b                            ,                                                                      ⁢                                            -                              h                                  k                  ,                  7                                ′                                      ⁢            b                    ,                                    -                              h                                  k                  ,                  8                                ′                                      ⁢            b                    ,                                    -                              h                                  k                  ,                  9                                ′                                      ⁢            b                    ,                                    h                              k                ,                10                            ′                        ⁢            b                    ,                                    -                              h                                  k                  ,                  11                                ′                                      ⁢            b                    ,                                    -                              h                                  k                  ,                  12                                ′                                      ⁢            b                    ,                                    -                              h                                  k                  ,                  13                                ′                                      ⁢            b                    ,                                                ⁢                                            -                              h                                  k                  ,                  14                                ′                                      ⁢            b                    ,                                    -                              h                                  k                  ,                  15                                ′                                      ⁢            b                          〉            which can be reformatted as:SSCk=(1+j)·<h′k,0B0b,h′k,1B1b, . . . ,h′k,14B14b,h′k,15B15b>.
The frame synchronization and code-group identification (step 2) process for UMTS-FDD (WCDMA) cell search amounts to determining which of the k secondary synchronization code SSCk sequences is transmitted every slot (where it is assumed from completion of step 1 that the slot beginning time t0 is already known). This is equivalent to finding the row k of the Hadamard matrix H8 that is used for the given time slot. In accordance with well known prior art techniques, the row k is typically identified by correlating the complex-valued input signal s(t) by every possible secondary synchronization code SSCk to obtain sixteen estimates as follows:
                                          SSC            _                    k                =                              ∑                          n              =              0                        15                    ⁢                      (                                          h                                  k                  ,                  n                                ′                            ⁢                                                B                  n                                ·                                  (                                                            ∑                                              p                        =                        0                                            15                                        ⁢                                                                  b                        p                                            ⁢                                              s                        ⁡                                                  (                                                                                    t                              0                                                        +                                                          16                              ⁢                              n                                                        +                            p                                                    )                                                                                                      )                                                      )                                              (        5        )            to generate secondary synchronization energies. In the foregoing Equation (5), the signal s(t) is correlated over 256 samples, and the correlation by all sixteen possible hk rows is known as a reverse Hadamard transform. The energy of each of the sixteen correlations is then calculated by the searcher and used in the step 2 frame synchronization and code-group identification processing in a manner well known to those skilled in the art.
In a prior art implementation, the inner sum of the correlation defined by Equation (5) above is accomplished using a dedicated hardware device and the outer sum is taken care of by a complementary software process. That inner sum comprises N=16 separate inner sum (IS) calculations as follows:
                              IS          n                =                              ∑                          p              =              0                        15                    ⁢                                    b              p                        ⁢                          s              ⁡                              (                                                      t                    0                                    +                                      16                    ⁢                    n                                    +                  p                                )                                                                        (        6        )            
wherein: 0≦n<N=16,
with the sixteen consecutive inner sums being used to perform the reverse Hadamard transform, and each and every one of them being used in any secondary synchronization code SSCk processing to produce correlations as follows:
                                          SSC            _                    k                =                              ∑                          n              =              0                        15                    ⁢                      (                                          h                                  k                  ,                  n                                ′                            ⁢                                                B                  n                                ·                                  IS                  n                                                      )                                              (        7        )            The entire step 2 process may last over many slots, and in fact may take more than a frame to complete.
Notwithstanding the use of combined dedicated hardware device and software process for performing the step 2 frame synchronization and code-group identification process, it would be advantageous if the number of slots are required for step 2 completion were reduced thus producing enhanced receiver performance. The present invention addresses the foregoing need with a method and associated apparatus that outperforms conventional step 2 processes and allows for code group and frame alignment acquisition to occur at Eb/No levels lower (i.e., under more adverse conditions) than possible with prior art solutions.